
		SET UP ROUTINE FOR THE CP/M MODEM PROGRAM
			Version 7.6   04/12/82
			modified   by     BRR
			from vers 7.5 by  RLP

This information is given for those who do not wish to re-assemble
the modem program for their system because they do not have MAC, do
not have the source code, or are lazy. If you have a PMMI Modem board,
with base port set at 0C0H, and do not want backup (.BAK) copies (if the
file being received already exists), the program will run as is. Else,
make the patches listed below.

Use the L command ( L100 ) of DDT or SID to list the program and
use the S command to make the following changes:

0100 C3 3F04	JMP 043FH  <---  Do not change

(Note: The L command of DDT or SID displays 0FFH as "RST 07" and 0 as "NOP")

0103 FF			   <--- 0FFH if PMMI modem, else zero.
				SuperBrain users should put zero here.

0104 00			   <--- 0FFH if Imsai with front panel,
				else zero.
				SuperBrain users should put zero here.

0105 FF			   <--- 0FFH if 4 MHz Z-80 (or maybe fast 8085)
				else 0.
				SuperBrain users should use 0FFH

0106 00			   <--- Zero if you want files that exist
				to be deleted if a file of the same
				name is sent in multifile transfer.
				0FFH if you want the existing file
				to be changed to type "BAK".

				Note: In CP/M 2 existing R/O or
				      SYS files	are changed to
				      type BAK whether this byte
				      is set or not.

0107 FF			   <--- 0FFH if you want program to come
				up in expert (XPR) mode without
				calling A>MODEM X else zero if
				you want menu or X command. You
				will probably want to leave this
				at 0FFH since new users can toggle
				this on with the XPR command.

0108 FA			   <--- 0FAH for 20 pulses/sec dialing
		PMMI		(PMMI modem only). 7DH if your
		ONLY		phone exchange is older and needs
				a slower dialing rate.

0109 FF			   <--- 0FFH if you want to be sure not
				to overwrite the CCP when in file
				transfer or file capture mode.
				Upon return to CP/M, the program
				will properly return to the CCP.
				00H if CCP space is allowed to be
				used for buffer.  In this case the
				RAM space up to the BDOS will be
				used and return to CP/M will be via
				a warm boot.

010A DB XX	IN  XX     <--- Put modem status port in 010BH
				(Base port if PMMI).
				SuperBrain users should put 59H
				here for main status.
010C C9		RET

If you do not have a PMMI modem, make the following patches also:

010D D3 XX	OUT XX	   <--- Put modem data port in 010EH.
				SuperBrain users should put 58H
				here for main data.
010F C9		RET	

0110 E6 XX	ANI XX	   <--- Put bit tested when modem ready to
				send in 0111H.
				SuperBrain users need make no change.
0112 C9		RET		

0113 FE XX	CPI XX	   <--- Same as 0111H if port uses positive logic (JZ).
				Hex zero if port uses negative logic (JNZ).
				SuperBrain users need make no change.
0115 C9		RET

0116 DB XX	IN XX	   <--- Put modem data port (again) in 0117H.
				SuperBrain users should put 58H
				here for main data.
0118 C9		RET

0119 E6 XX	ANI XX	   <--- Put bit tested when modem ready to receive
				in 011AH.
				SuperBrain users need make no change.
011B C9		RET

011C FE XX	CPI XX	   <--- Same as 011AH if port uses positive logic.
				Hex zero if port uses negative logic.
				SuperBrain users need make no change.
011E C9		RET

011F C3 XXXX	JMP XXXX   <--- 011FH contains a jump to a modem or port
				initialization routine. If your modem does
				not need to be initialized, put a RET (C9H)
				in 011FH .If you need initialization, write
				your routine for the memory location addressed
				by the jump. The initialization routine
				must end with a RET instruction. You have
				approximately 190 (decimal) bytes for the
				routine. 
				SuperBrain users would probably want to put
				a RET in 011FH if they have properly set the
				number of data and stop bits and the parity
				with CONFIGUR or ACTIVATE.

The following are useful changes to make to run on MIT's ITS machines; they
allow more efficient operation with EMACS, etc.

057D FE 05	CPI 05	   <--- Change the 05H (control-E or move cursor to
				end of line in EMACS) to a less likely EMACS
				hit. I use 1CH (control-\). You now type
				control-\ to return to the MODEM75 command
				level. Note that you can still send 1CH by
				typing control-^ followed by control-\. 

0582 FE 04	CPI 04	   <--- If you do not have a PMMI modem I advise
				changing the 04H (control-D or delete char-
				acter in EMACS) to 08H (control-H or CP/M 2.2
				backspace-delete-backspace). Then insert the
				code on the following lines to convert this
				to a RUB (7FH). This prevents mistaken use of
				this control character when RUB is intended.

0584 CA DA 20	JZ 20DA    <--- Assuming you don't have a PMMI change this
				to CC 30 04 (CZ 0430). This is a call to the
				region where the PMMI phone numbers are
				stored and is therefore free if you don't
				have a PMMI.

0430 20 20	'  '	   <--- Insert 3E 7F (MVI A,7F)

0432 20		' '	   <--- Insert C9 (RET)
	
You are finished. Leave DDT (using ^C) and type

		SAVE 38 MODEM.COM

END of FILE.
